function declaration vs definition